#!/bin/bash
# V2ray订阅链接自动获取脚本的cron设置

# 设置脚本路径
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
SCRIPT_PATH="$SCRIPT_DIR/proxy_fetcher.py"

# 检查脚本是否存在
if [ ! -f "$SCRIPT_PATH" ]; then
    echo "错误: 脚本文件不存在: $SCRIPT_PATH"
    exit 1
fi

# 设置脚本权限
chmod +x "$SCRIPT_PATH"

# 从Python配置文件中读取配置（如果存在）
if [ -f "config.py" ]; then
    echo "检测到配置文件，读取配置..."
    OUTPUT_DIR=$(python3 -c "import config; import os; print(os.path.expanduser(config.OUTPUT_DIR))" 2>/dev/null || echo "/var/proxy")
    LOG_FILE=$(python3 -c "import config; import os; print(os.path.expanduser(config.LOG_FILE))" 2>/dev/null || echo "/var/log/proxy_fetcher.log")
    OUTPUT_PERM=$(python3 -c "import config; print(oct(config.OUTPUT_DIR_PERMISSIONS)[2:])" 2>/dev/null || echo "755")
    LOG_PERM=$(python3 -c "import config; print(oct(config.LOG_FILE_PERMISSIONS)[2:])" 2>/dev/null || echo "644")
else
    echo "使用默认配置..."
    OUTPUT_DIR="/var/proxy"
    LOG_FILE="/var/log/proxy_fetcher.log"
    OUTPUT_PERM="755"
    LOG_PERM="644"
fi

# 创建输出目录
sudo mkdir -p "$OUTPUT_DIR"
sudo chmod "$OUTPUT_PERM" "$OUTPUT_DIR"

# 创建日志目录
LOG_DIR=$(dirname "$LOG_FILE")
sudo mkdir -p "$LOG_DIR"
sudo touch "$LOG_FILE"
sudo chmod "$LOG_PERM" "$LOG_FILE"

# 添加cron任务（每天凌晨2点执行）
CRON_JOB="0 2 * * * cd $SCRIPT_DIR && python3 $SCRIPT_PATH >> $LOG_FILE 2>&1"

# 检查是否已经存在相同的cron任务
if crontab -l 2>/dev/null | grep -q "$SCRIPT_PATH"; then
    echo "cron任务已存在，跳过添加"
else
    # 添加新的cron任务
    (crontab -l 2>/dev/null; echo "$CRON_JOB") | crontab -
    echo "已添加cron任务: 每天凌晨2点执行"
fi

# 显示当前的cron任务
echo "当前的cron任务:"
crontab -l | grep "$SCRIPT_PATH" || echo "未找到相关cron任务"

echo "设置完成！"
echo "脚本路径: $SCRIPT_PATH"
echo "输出目录: $OUTPUT_DIR"
echo "日志文件: $LOG_FILE"
echo "执行时间: 每天凌晨2点"
